package com.agile.leetcode.easy.excelsheet;

/**
 * 给定一个Excel表格中的列名称，返回其相应的列序号。
 * <p>
 * 例如，
 * <p>
 * A -> 1
 * B -> 2
 * C -> 3
 * ...
 * Z -> 26
 * AA -> 27
 * AB -> 28
 * ...
 * <p>
 * 示例 1:
 * <p>
 * 输入: "A"
 * 输出: 1
 * <p>
 * 示例 2:
 * <p>
 * 输入: "AB"
 * 输出: 28
 * <p>
 * 示例 3:
 * <p>
 * 输入: "ZY"
 * 输出: 701
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/excel-sheet-column-number
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @Author KD
 * @Date 2021/2/3 10:50
 */
public class ExcelSheet {
    public static void main(String[] args) {
        ExcelSheet sheet = new ExcelSheet();
        int a = sheet.titleToNumber("ZY");
        System.out.println(a);
    }

    public int titleToNumber(String s) {
        // 转为char数组
        char[] chars = s.toCharArray();
        // 总和
        int sum = 0;
        // 遍历
        for (char aChar : chars) {
            int num = aChar - 'A' + 1;
            // 26进制问题
            sum = sum * 26 + num;
        }
        return sum;
    }
}
